/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package View;

import DAO.ClienteDAO;
import DAO.FornecedorDAO;
import DAO.ItemDAO;
import DAO.NotaFiscalDAO;
import DAO.PedidoDAO;
import Pojo.Fornecedor;
import java.io.FileNotFoundException;
import java.text.ParseException;
import java.util.Scanner;

/**Classe que encarregada de dar acesso aos demais menus
 *
 * @author Higor
 */
public class MenuPrincipal {

    /**Método que imprime o menu
     * 
     */
    public void imprimeMenu(){
        System.out.println("-------Escolha uma opcao-----");
        System.out.println("(1)Fornecedores");
        System.out.println("(2)Itens");
        System.out.println("(3)Clientes");
        System.out.println("(4)Comprar(reposição em estoque)");
        System.out.println("(5)Pedidos");
        System.out.println("(6)sair");
        System.out.println("Entre com uma opção valida: ");
    }
    
    
    /**Método que gerencia o MenuPrincipal
     * 
     * @param args String - Não utilizado
     * @throws FileNotFoundException - Sem descricao
     * @throws ParseException - Sem descricao
     */
    public static void main(String[] args) throws FileNotFoundException, ParseException {
        MenuPrincipal menuPrincipal = new MenuPrincipal();
        Scanner scanner = new Scanner(System.in);
        ItemDAO itemDao = new ItemDAO();
        MenuItem menuItem = new MenuItem();
        FornecedorDAO fornecedorDao = new FornecedorDAO();
        MenuFornecedor menuFornecedor = new MenuFornecedor();
        ClienteDAO clienteDao = new ClienteDAO();
        MenuCliente menuCliente = new MenuCliente();
        Fornecedor fornecedor = new Fornecedor();
        MenuPedido menuPedido = new MenuPedido();
        PedidoDAO pedidoDao = new PedidoDAO();
        NotaFiscalDAO notaFiscalDao = new NotaFiscalDAO();
        byte opcao;
        
       
        fornecedorDao.lerArquivo();//carregando fornecedores
        itemDao.lerArquivo(fornecedorDao);/*carregando itens. obs. como item possui fornecedor,
        é necessario carregar fornecedor primeiro, para assim fazer a associação do item com o fornecedor.*/
        clienteDao.lerArquivo(); //carrengando clientes
        pedidoDao.lerArquivo(itemDao, clienteDao); //carregando pedidos
        fornecedorDao.lerArquivoPegarItens(itemDao);
        notaFiscalDao.lerArquivo(itemDao, clienteDao, pedidoDao);
        
        do{
            menuPrincipal.imprimeMenu();
            opcao = scanner.nextByte();
            switch(opcao){
                case 1:
                    menuFornecedor.menuOpcao(fornecedorDao);
                    break;
                case 2:
                    menuItem.menuOpcao(itemDao);
                    break;
                case 3:
                    menuCliente.menuOpcao(clienteDao);
                    break;
                case 4:                    
                    MenuCompra compra = new MenuCompra();
                    compra.menu(itemDao, fornecedorDao);
                    break;
                case 5:
                    menuPedido.menuOpcao(itemDao,clienteDao,pedidoDao, notaFiscalDao);
                    break;
                case 6:
                    break;
                default:
                    System.out.println("Opção invalida!!");
            }
        }while(opcao!=6);
                
    }
}
